import java.util.Scanner;

public class test {
    public static void main(String[] args) {
//        System.out.println("hello");
//        计算1-100的奇数之和 和 偶数的和
//        int ji = 0;
//        int ou = 0;
//        int sum1 = 0;
//        int sum2 = 0;
//        while (ji <= 100) {
//            if (ji % 2 == 1) {
//                sum1 += ji;
//            }
//            ji++;
//        }
//
//        while (ou <= 100) {
//            if (ou % 2 == 0) {
//                sum2 += ou;
//            }
//            ou++;
//        }
//        System.out.println("奇数之和为" + sum1);
//        System.out.println("偶数之和为" + sum2);
        //计算1-100之间能被3和5整除的数字
//        int num = 0;
//        int i = 1;
//        while (i > 0) {
//            if ( i % 3 == 0 && i % 5 == 0) {   //  && 逻辑与  有短路计算的特性  即如果第一个表达式为false,那么第二个表达式不会执行

                                                 //  &  1.     无短路计算的特性  即使第一个表达式为false,第二个表达式也会继续执行
                                                 //     2.     作为运算符       两位都是1 才为1 否则为0
//                System.out.println(i);
//            }
//            i++;
//            if (i > 100) {
//                break;
//            }
//        }
//
//        Scanner MyScanner =new Scanner(System.in);
//        int a = MyScanner.nextInt();
//
//        Scanner MyScanner1 = new Scanner(System.in);
//        byte b = MyScanner1.nextByte();
//
//        Scanner MyScanner2 = new Scanner(System.in);
//        short s = MyScanner2.nextShort();






//        6. 练习
//        1. 根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
//        2. 判定一个数字是否是素数
//        3. 打印 1 - 100 之间所有的素数
//        4. 输出 1000 - 2000 之间所有的闰年
//        5. 输出乘法口诀表
//        6. 求两个正整数的最大公约数
//        7. 求出0～999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数，其各位数字的立方和确好等于该数
//        本身，如： 153＝1^3＋5^3＋3^3 ，则153是一个“水仙花数”。)
//        8. 写一个函数返回参数二进制中 1 的个数
//        比如： 15 0000 1111 4 个 1
//        9. 获取一个数二进制序列中所有的偶数位和奇数位，分别输出二进制序列。
//        10. 完成猜数字游戏

//        1. 根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)

//        System.out.println("请输入你的年龄");
//        Scanner myScanner = new Scanner(System.in);
//        int age = myScanner.nextInt();
//
//        if(age > 0 && age <= 100){
//            if(age <= 18){
//                System.out.println("少年！");
//            }else if(age >= 19 && age <= 28){
//                System.out.println("青年！");
//            }else if(age >= 29 && age <= 55){
//                System.out.println("中年！");
//            }else{
//                System.out.println("老年！");
//            }
//        }

//        2. 判定一个数字是否是素数

//        System.out.println("请输入你想要判断的数字");
//        Scanner myScanner = new Scanner(System.in);
//        int num = myScanner.nextInt();
//        int i =2;
//        for (; i <= Math.sqrt(num) ; i++) {
//            if (num % i == 0){
//                break;
//            }
//        }
//        if (i > Math.sqrt(num)) {
//            System.out.println("是素数");
//        } else {
//            System.out.println("不是素数");
//        }




//        3. 打印 1 - 100 之间所有的素数

//        int k = 0;
//        for (k = 3; k <= 100; k++) {
//            int i = 2;
//            for (; i <= Math.sqrt(k) ; i++) {
//                if (k % i == 0){
//                    break;
//                }
//            }
//
//            if (i > Math.sqrt(k)) {
//                System.out.println(k + "是素数");
//            }
//        }

//        4. 输出 1000 - 2000 之间所有的闰年
//        能被4整除但不能被100整除
//        能被100整除

//        int year = 1000;
//        for (;year <= 2000 ; year++) {
//            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
//                System.out.println(year + "是闰年");
//            }
//        }


//        5. 输出乘法口诀表

//        for (int i = 1; i <= 9; i++) {
//            for(int j = 1; j <= i ;j++) {
//                System.out.print(j + "*" + i + " ");
//            }
//            System.out.println();
//        }

//        6. 求两个正整数的最大公约数

//        System.out.println("请输入两个正整数");
//        Scanner num1 = new Scanner(System.in);
//        int numone = num1.nextInt();
//
//        Scanner num2 = new Scanner(System.in);
//        int numtwo = num2.nextInt();
//
//        if (numtwo > numone) {
//            int space = 0;
//            space = numtwo;
//            numtwo = numone;
//            numone = space;
//        }
//        int bear = numone % numtwo;
//
//        if (numtwo % bear == 0) {
//            System.out.println(bear + "是最大公约数");
//        }

        //       求出0～999之间的所有“水仙花数”并输出。
        //       (“水仙花数”是指一个三位数，其各位数字的立方和确好等于该数本身，如： 153＝1^3＋5^3＋3^3 ，则153是一个“水仙花数”。)

        int i = 0;
        for (i = 1; i <= 999; i++) {
            //确定 i 为几位数
            int count = 0;
            int tmp = i;
            while (tmp != 0) {
                count++;
                tmp = tmp / 10;
            }
            tmp = i;
            //求 i 的每一位
            int sum = 0;
            while (tmp != 0) {
                sum += Math.pow(tmp % 10, count); //每一次 模 10 都可以得到最小位的数字
                tmp /= 10; // 去除已经获得位数的数字 ， 以免对后续产生影响
            }
            if (sum == i) {
                System.out.println(i);
            }

        }
    }
}
